Файлы содержащие настройки, необходимые для правильной работы Asterisk RealTime через ODBC
Эти файлы находятся в каталоге основных настроек
Asterisk, как правило это
/etc/asterisk или
/usr/local/etc/asterisk.
- extconfig.conf - содержит настройки необходимые для указания механизму RealTime какие фрагменты конфигурации из каких внутренних DSN в Asterisk можно получить
- res_config_odbc.conf - содержит настройки необходимые для связи внутреннего DSN в Asterisk с внешним DSN в ODBC
- modules.conf - содержит настройки какие модули загружать и в каком порядке
Настройки RealTime через ODBC на примере Asterisk 1.8
Настройки RealTime через ODBC: файл modules.conf
Обязательно должна присутствовать и не быть закоментаренной строка:
preload => res_config_odbc.so
в ином случае, на момент чтения настроек, механизм
RealTime не будет располагать внутренним
DSN в
Asterisk.
Также, следует убедиться, что нигде после этой строки нет строки(если строка закоментарена, то ничего страшного):
noload => res_config_odbc.so
Настройки RealTime через ODBC: файл res_config_odbc.conf
[internal-asterisk-DSN-name] ; Название, которое будет указано в файле extconfig.conf
enabled => yes
dsn => odbc-DSN-name ; Название внешнего DSN, описанного /etc/odbc.ini
databse => db-name ; название БД
username => dbuser-name ; Пользователь, имеющий все необходимые привелегии на выполнение операций с данными в таблицах,
; необходимых для полноценной работы механизма RealTime
password => dbuser-pw ; Пароль пользователя
pre-connect => yes ; Соединяться заранее
Настройки RealTime через ODBC: файл extconfig.conf
Для настроек
SIP peers и
SIP users, хранимых в таблице базы данных и доступных через
ODBC можно использовать следующие настройки:
sippeers => odbc,internal-asterisk-DSN-name
sipusers => odbc,internal-asterisk-DSN-name
Общий формат настроек в файле
extconfig.conf описан в самом начале этого файла, но я его продублирую с пояснениями:
file.conf => driver,database[,table[,priority]]
;или
component => driver,database[,table[,priority]]
;driver может принимать значения:
; odbc настройки внутреннего DNS в Asterisk описываются в файле res_config_odbc.conf(ВНИМАНИЕ: не путать с res_odbc.conf!!!)
; sqlite настройки внутреннего DNS в Asterisk описываются в файле res_config_sqlite.conf
; pgsql настройки внутреннего DNS в Asterisk описываются в файле res_config_pgsql.conf
; curl настройки внутреннего DNS в Asterisk описываются в файле res_config_curl.conf
; ldap настройки внутреннего DNS в Asterisk описываются в файле res_config_ldap.conf
Настройки RealTime через ODBC: файл odbc.ini
Находится либо в
/etc, либо в
/usr/local/etc.
В этом файле описываются разнообразные
DSN со всеми их специфическими настройками подключения.
На эти внешние
DSN ссылаются внутернние
DSN в
Asterisk в файлах настройки
res_odbc.conf и
res_config_odbc.conf.
Некоторые симптомы, говорящие о неправильной настройке RealTime через ODBC
Сообщение в консоли(журнале) вида:
[Sep 26 09:34:47] WARNING[25978] config.c: Realtime mapping for 'sippeers' found to engine 'odbc', but the engine is not available
говорит о том, что механизм
RealTime в Asterisk не может связаться через
ODBC с базой данных.
Как правило, причиной появления таких сообщени становится то, что вместо файла
res_config_odbc.conf и соответствующего модуля
res_config_odbc.so настраиваются и загружаются
res_odbc.conf и
res_odbc.so соответственно.
При правильной настройке цепочки ссылок на
DSN, но неправильной настройке непосредственного подключения к базе данных, через соответствующий
ODBC драйвер, будут выдаваться различные ошибки подключения, сильно зависящие от фактической причины и используемого драйвера
ODBC.